package cn.ylf.wordgenerate;

import cn.ylf.wordgenerate.modle.User;
import cn.ylf.wordgenerate.util.ImageUtil;
import cn.ylf.wordgenerate.util.WordUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@SpringBootApplication
public class WordgenerateApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(WordgenerateApplication.class, args);
        /**
         * 自动生成Word文档
         * 注意：生成的文档的后缀名需要为doc，而不能为docx，否则生成的Word文档会出错
         */
        WordUtil.generateWord(getWordData(), "G:/Text/WordGenerateText/User.doc");
    }

    /**
     * 获取生成Word文档所需要的数据
     */
    private static Map<String, Object> getWordData() {
        /*
         * 创建一个Map对象，将Word文档需要的数据都保存到该Map对象中
         */
        Map<String, Object> dataMap = new HashMap<>();

        /*
         * 直接在map里保存一个用户的各项信息
         * 该用户信息用于Word文档中FreeMarker普通文本处理
         * 模板文档占位符${name}中的name即指定使用这里的name属性的值"用户1"替换
         */
        dataMap.put("name", "张三");
        dataMap.put("sex", "男");
        dataMap.put("birthday", "1999-09-9");
        dataMap.put("graduate","清华");

        /**
         * 将用户的各项信息封装成对象，然后将对象保存在map中，
         * 该用户对象用于Word文档中FreeMarker表格和图片处理
         * 模板文档占位符${userObj.name}中的userObj即指定使用这里的userObj属性的值(即user2对象)替换
         */
        User user2 = new User();
        user2.setName("张三");
        user2.setSex("男");
        user2.setBirthday("1999-09-9");
        user2.setGraduate("清华");
        // 使用FreeMarker在Word文档中生成图片时，需要将图片的内容转换成Base64编码的字符串
        user2.setPhoto(ImageUtil.getImageBase64String("G:/idea maven project/JAVE EE/WordGenerate/src/main/resources/img/01.jpg"));
        dataMap.put("userObj", user2);



        return dataMap;
    }
    }


